/**
 * 配置
 * */
package org.zmhhxl.samples3.resource.gateway.configure;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.CorsConfigurationSource;
import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
import org.springframework.web.filter.CorsFilter;

/**
 * 启用跨域配置
 * @author Steve Riesenberg
 */
//@Configuration
public class CorsConfig {

//    @Bean
//    public CorsConfigurationSource corsConfigurationSource() {
//
//        CorsConfiguration config = new CorsConfiguration();
//        config.addAllowedHeader("*");
//        config.addAllowedMethod("*");
//        config.addAllowedOrigin("http://127.0.0.1:4200");
//        config.setAllowCredentials(true);
//
//        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
//        source.registerCorsConfiguration("/**", config);
//        return source;
//    }

    /**
     * 跨域过滤器配置
     *
     * @return CorsFilter
     */
    //@Bean
//    public CorsFilter corsFilter() {
//
//        // 初始化cors配置对象
//        CorsConfiguration configuration = new CorsConfiguration();
//
//        // 设置允许跨域的域名,如果允许携带cookie的话,路径就不能写*号, *表示所有的域名都可以跨域访问
//        //configuration.addAllowedOrigin("http://127.0.0.1:5173");
//        //configuration.addAllowedOrigin("http://192.168.1.102:5173");
//        //configuration.addAllowedOrigin("http://192.168.119.1:5173");
//        configuration.addAllowedOrigin("http://127.0.0.1:4200");
//        configuration.addAllowedOrigin("http://127.0.0.1:8080");
//        configuration.addAllowedOrigin("http://127.0.0.1:8090");
//        // 设置跨域访问可以携带cookie
//        configuration.setAllowCredentials(true);
//        // 允许所有的请求方法 ==> GET POST PUT Delete
//        configuration.addAllowedMethod("*");
//        // 允许携带任何头信息
//        configuration.addAllowedHeader("*");
//
//        // 初始化cors配置源对象
//        UrlBasedCorsConfigurationSource configurationSource = new UrlBasedCorsConfigurationSource();
//
//        // 给配置源对象设置过滤的参数
//        // 参数一: 过滤的路径 == > 所有的路径都要求校验是否跨域
//        // 参数二: 配置类
//        configurationSource.registerCorsConfiguration("/**", configuration);
//
//        // 返回配置好的过滤器
//        return new CorsFilter(configurationSource);
//    }
//
////    @Bean
//    public CorsConfigurationSource corsConfigurationSource() {
//
//        // 1.添加cors配置信息
//        CorsConfiguration config = new CorsConfiguration();
//        //放行哪些原始域（头部信息）
//        config.addAllowedHeader("*");
//        //放行哪些原始域(请求方式,get,post等)
//        config.addAllowedMethod("*");
//        //放行哪些原始域
//        config.addAllowedOrigin("http://127.0.0.1:4200");  //http://127.0.0.1:4200
//        config.addAllowedOrigin("http://127.0.0.1:8080");
//        config.addAllowedOrigin("http://127.0.0.1:8090");
//        //是否发送cookie信息
//        config.setAllowCredentials(true);
//        //暴露哪些头部信息（因为跨域访问默认不能获取全部头部信息）
//        //config.addExposedHeader("*");
//
//        // 2.添加映射路径
//        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
//        source.registerCorsConfiguration("/**", config);
//
//        return source;
//    }

}
